package com.ynr.voucher.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.ynr.voucher.model.FaModel;

public interface IDictionaryDao {

	public List<Map<String, Object>> getCompanyFaDic(@Param("companyId")long companyId);

	public List<Map<String, Object>> getCommonFaDic();

	public List<Map<String, Object>> getCompanySubjectDic(@Param("companyId")long companyId);

	public List<Map<String, Object>> getCommonSubjectDic();

	public List<FaModel> getFaType();

	public String getLastCompanyCreditSubject();

	public String getLastCompanyDebitSubject();

	public Map<String, Object> getTrialBalance(@Param("companyId")long companyId, @Param("supplyName")String supplyName, @Param("billDate")String billDate, @Param("code")String code);

	public String getLastPayableCode(@Param("companyId")long companyId, @Param("code")String code);

	public void addSubjectAttribute(@Param("auxiliaryAccountType")String auxiliaryAccountType, @Param("type")int type, 
			@Param("level")int level, @Param("subjectCode")String subject, @Param("subjectName")String supplyName, @Param("isLast")int isLast,
			@Param("balanceDirection")int balanceDirection,@Param("companyId")long companyId);

	public List<Map<String, Object>> getCompanyBankDic(@Param("companyId")long companyId, @Param("direction")int direction);

	public List<Map<String, Object>> getCommonBankDic(@Param("direction")int direction);

	public Map<String, Object> getSubjectBySupplyName(@Param("companyId")long companyId, @Param("supplyName")String supplyName, @Param("code")String code);

	public int addFaDict(@Param("dict")String dict, @Param("type")String type, @Param("companyId")String companyId);

	public FaModel getFaDepreciationType(@Param("type")String type);

}
